package com.leo.leetcode.s100;

/**
 *
 * @author xuexiaolei
 * @version 2017年11月21日
 */
public class T27RemoveElement {
    public static int removeElement(int[] nums, int val) {
        if (nums.length == 0) return 0;
        if (nums.length == 1 && nums[0]==val) return 0;
        if (nums.length == 1 && nums[0]!=val) return 1;
        int len = -1;
        for (int i = 0; i < nums.length; i++) {
            if (val != nums[i]){
                len++;
                nums[len] = nums[i];
            }
        }
        return len+1;
    }

    /**
     * 没有受上一题的影响
     * @param nums
     * @param val
     * @return
     */
    public int removeElement2(int[] nums, int val) {
        int i=0;
        for(int j=0;j<nums.length;j++){
            if(nums[j]!=val){
                nums[i]=nums[j];
                i++;
            }
        }
        return i;
    }

    public static void main(String[] args) {
        System.out.println(removeElement(new int[]{}, 3));
        System.out.println(removeElement(new int[]{3,2,2,2,3}, 3));
    }
}
